# Apache Web服务器 ***Copyright © Quectel Wireless Solutions Co., Ltd. 2026. All rights reserved.*** --- Apache Web 服务器(Apache HTTP Server)是一款由 Apache 软件基金会开发和维护的开源、跨平台 Web 服务器软件。它以稳定、安全和高度可扩展著称,支持通过丰富的模块实现多种功能,是全球最广泛使用的 Web 服务器之一,常用于网站托管、动态应用支持以及反向代理等场景。 本文档介绍如何在 Quectel Pi M1 / L1 Debian 系统上安装并运行 **Apache Web 服务器**,并通过同一局域网内的 Windows 电脑访问网页。 # 准备工作 1. 确认设备环境: - Quectel Pi M1 / L1 与 Windows 主机位于同一局域网内,且两端网络可互通 - 若计划通过 `apt` 在线安装 Apache,设备还需能够访问 Debian 软件源 2. 检查网络连通: - 在设备终端执行 `hostname -I` 查看当前 IP 地址,再 `ping` 同网段中的 Windows 主机或网关地址;若能看到返回的时间信息,则说明局域网通信正常。亦可在 M1/Windows 主机上执行 `ping 10.66.84.17`(以实际设备 IP 为准)确认。 3. 登录开发板: - **M1**:可通过串口或图形界面登录,默认使用 `q` 用户。 - **L1:若本地调试环境已可用,也可通过 ADB 进入系统;本文以串口进入为例。登录方式可参考 debug_uart.md。L1 默认使用`root`****登录,系统无密码。** # 安装 Apache Web 服务 Apache 是最常用的网页服务器程序之一,用于提供网站访问服务。 1. 更新软件源: ```bash sudo apt update ``` 2. 安装 Apache 服务: ```bash sudo apt install apache2 -y ``` > 💡 若当前网络无法访问 Debian 软件源,也可先在主机上下载 `apache2`、`apache2-data`、`apache2-utils` 等对应架构的安装包,再拷贝到设备离线安装。 3. 确认 Apache 安装成功: ```bash /usr/sbin/apache2 -v ``` # 启动与设置自动启动 1. 启动 Apache 服务: ```bash sudo systemctl start apache2 ``` 2. 设置为开机自动启动: ```bash sudo systemctl enable apache2 ``` 3. 查看运行状态: ```bash sudo systemctl status apache2 systemctl is-active apache2 systemctl is-enabled apache2 ``` # 放行 Web 访问端口 若设备防火墙已限制 `80` 端口,需要添加放行规则。以下示例允许指定 Windows 主机访问设备的 HTTP 服务(请将 `` 替换为实际 IP,M1 实测样例为 10.66.84.17): ```bash sudo iptables -I INPUT 1 -i eth0 -p tcp -s --dport 80 -j ACCEPT ``` 查看端口监听和防火墙规则: ```bash netstat -tulnp | grep ':80' sudo iptables -S INPUT | grep 80 ``` 实测 Apache 已监听 `0.0.0.0:80` 或 `:::80`。实际访问时,请以 `hostname -I` 查询到的设备当前 IP 地址为准。 # 查看设备 IP 地址 ```bash hostname -I ``` # 测试 Apache 是否安装成功 1. 在同一局域网内的电脑浏览器中访问: ``` http://<开发板IP>/ http://10.66.84.182/ ``` 2. 如果一切正常,将会看到 Apache 默认页面。 # 更改默认网页 Apache 的默认网页是文件系统中的一个 HTML 文件,位于 `/var/www/html/index.html`。 导航到此目录并查看内容: ```bash cd /var/www/html ls -al ``` 将会展示以下内容: ``` total 20 drwxr-xr-x 2 root root 4096 Oct 30 07:53 . drwxr-xr-x 3 root root 4096 Oct 30 06:51 .. -rw-r--r-- 1 root root 10703 Oct 30 06:51 index.html ``` 系统默认在 `/var/www/html` 目录下存在一个名为 `index.html` 的网页文件,其所有者为 `root` 用户。由于普通用户无权直接修改 root 所属的文件,若需编辑该网页,需将其所有者改为您自己的用户名。 - **M1(默认 q 用户)**: ```bash sudo chown q:q index.html ``` - **L1 或其他自定义用户**: ```bash sudo chown <用户名>:<用户名> index.html ``` 现在您可以编辑该文件。修改完成后,只需刷新浏览器,即可查看网页的变化。 # 疑难解答 | **现象** | **可能原因** | **处理方法** | | --- | --- | --- | | Windows 命令提示符提示 `Test-NetConnection` 不是内部或外部命令 | `Test-NetConnection` 是 PowerShell 命令,不是 CMD 命令 | 打开 Windows PowerShell 后重新执行 `Test-NetConnection <设备IP> -Port 80` | | 能 `ping` 通设备,但浏览器无法打开网页,且 `TcpTestSucceeded` 为 `False` | Apache 服务未运行、80 端口未监听,或设备防火墙未放行 80 端口 | 在设备上依次执行 `sudo systemctl status apache2`、`sudo systemctl restart apache2`、`netstat -tulnp \| grep ':80'` 确认服务状态和端口监听 | | `apt install apache2` 无法完成 | 设备当前网络无法访问 Debian 软件源 | 先确认开发板具备外网访问能力;若仅局域网可用,可在主机下载 `apache2` 相关安装包后拷贝到开发板离线安装(参见安装一节注意事项) | | IP 地址填写正确但仍无法访问 | 设备和 Windows 主机不在同一局域网,或切换 ADB/以太网后 IP 地址发生变化 | 在设备上执行 `hostname -I` 重新确认 IP 地址,并确保 Windows 主机与设备处于同一网段 | 如果确认 Apache 已经监听 `0.0.0.0:80`,但 Windows 仍无法访问,可临时放行 Windows 主机访问 80 端口(请将 `` 替换为实际 IP): ```bash sudo iptables -I INPUT 1 -i eth0 -p tcp -s --dport 80 -j ACCEPT ```